// 配置中间件 去 config.default.js
// 数组的内容是 中间件的文件名
//  config.middleware = ['printdate']

/**
 *
 * @param {Object} options 中间件的配置项，框架会将 app.config[${middlewareName}] 传递进来 在config.default.js 配置 config.printdate
 * @param {Object} app 当前应用 Application 的实例
 */
module.exports = (options, app) => {
  // 返回一个异步的方法

  return async function printDate(ctx, next) {
    // 放在前面，先去请求后面的东西（要验证的东西），然后回到这里验证，否则拿不到要验证的数据，无法根据数据来做判断

    await next()

    console.log('--------------------start-------------------')
    console.log(new Date().toLocaleString())
    console.log(ctx.length)

    if (ctx.length > 1000) {
      console.log('大于 10000 ，进行压缩（示例）')
    }
    console.log('---------------------end------------------')
  }
}
